Перезавантаження функцій

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2013
Тип роботи:
Лабораторна робота
Предмет:
Програмування Ч 3 Структури даних і алгоритми

Частина тексту файла

Міністерство освіти і науки України Національний університет „ Львівська політехніка “ Кафедра ЕОМ Звіт З Лабораторної роботи №1:“ Перезавантаження функцій ” МЕТА РОБОТИ: ПОЗНАЙОМИТИСЯ ІЗ ПЕРЕВАНТАЖЕННЯМ ФУНКЦІЙ Перевантаження функцій С++ дозволяє визначати декілька функцій з одним і тим же іменем, якщо дані функції мають різні набори параметрів (принаймні різні типи параметрів). Нехай оголошені наступні функції: іnt func(іnt, іnt); іnt func(char, double); іnt func(long, double); іnt func(float, ...); // Функція з невизначеним числом аргументів. іnt func(char*, іnt);   При виклику функції з ім’ям func спершу компілятор намагатиметься знайти функцію, формальні аргументи якої відповідають фактичним аргументам без усяких перетворень типів або з використанням тільки неминучих перетворень - наприклад, імені масиву до покажчика або значення змінної до константи або навпаки. char strіng[ ] = "Рядок - це масив символів"; іnt і = func (strіng, 13); // func (char*, іnt); іnt j = func(1995L, 36.6); // func(long, double);   Якщо відповідна функція не знайдена, то здійснюється пошук такої функції, щоб для відповідності формальних і фактичних аргументів досить було використати тільки такі стандартні перетворення, що не спричиняють перетворень цілих типів до типів з плаваючою крапкою і навпаки. При цьому підбирається функція, для якої число таких перетворень було б мінімальним. float a=36.6; j = func('a', a); // func(char, double)   Третім етапом є пошук такої функції, для виклику якої досить здійснити будь-які стандартні перетворення аргументів (і знову так, щоб цих перетворень було якнайменше). іnt l = func("РІК:", 2002.3); // func (char*, іnt)   ЗАВДАННЯ: Варіант №11 Написати реалізацію перевантажених функцій : int func(int* arr, int length); int func(double * arr, int length); Функція func перевіряє чи в масиві чередуються знаки. Програма: #include <stdio.h> #include "func.h" int func(double *arr, int length){ bool negative=false; printf("\n[double]\n"); if(arr[0]<0)negative=true; for(int i=1; i<length; i++){ if(arr[i]<0){ if(negative)return 0; negative = true; }else{ if(!negative)return 0; negative = false; } } return 1; } int func(int *arr, int length){ bool negative=false; printf("\n[integer]\n"); if(arr[0]<0)negative=true; for(int i=1; i<length; i++){ if(arr[i]<0){ if(negative)return 0; negative = true; }else{ if(!negative)return 0; negative = false; } } return 1; } #include <stdio.h> #include "func.h" void main(){ int len=0, result=0; printf("Please enter length of array => "); scanf("%d", &len); printf("\n"); if(len<2){ printf("Error! Length of array at the least must be equal 2!\n"); return; } printf("===========\n\n"); double * a=new double[len]; for(int i=0; i<len; i++){ printf("Please enter element of array (#%d) => ", i+1); scanf("%Lf", &a[i]); } result = func(a, len); if(result==1)printf("\nThe elements (numbers) of array are alternate with each other. [%d]\n", result); else printf("\nThe elements (numbers) of array are NOT alternate with each other. [%d]\n", result); printf("\n===========\n\n"); int * a2=new int[len]; for(int i=0; i<len; i++){ printf("Please enter element of array (#%d) => ", i+1); scanf("%d", &a2[i]); } //befev result = func(a2, len); if(result==1)printf("\nThe elements (numbers) of array are alternate with each other. [%d]\n", result); else printf("\nThe elements (numbers) of array are NOT alternate with each other. [%d]\n", result); } Висновок: На лабораторній роботі №2, я познайомився з перезавантаженням функцій.
Антиботан аватар за замовчуванням

04.06.2014 18:06

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини